
const log4js = require('log4js')
const path = require('path')
// const {
//   app
// } = require('electron')

// 日志文件的输出路径，这里我们选择userData path下的logs
// 在我的电脑上是C:\Users\xxx\AppData\Roaming\myApp\logs
// const LOG_PATH = path.join(app.getPath('userData'), 'logs')
const LOG_PATH = path.join(__dirname, '..', 'logs')// 创建日志目录

log4js.configure({
  appenders: {
    // 设置控制台输出 （默认日志级别是关闭的（即不会输出日志））
    out: {
      type: 'console' // 配置了这一项，除了会输出到日志文件，也会输出到控制台
    },
    // 设置每天：以日期为单位,数据文件类型，dataFiel 注意设置pattern，alwaysIncludePattern属性
    alldateFileLog: {
      type: 'dateFile',
      filename: path.join(LOG_PATH, 'log'),
      // pattern: '.yyyy-MM-dd.log', // 每天生成按这个格式拼接到filename后边
      alwaysIncludePattern: true // 始终包含pattern
    },
    fileLog: {
      type: 'file',
      filename: path.join(LOG_PATH, 'file.log'),
      // pattern: '.yyyy-MM-dd.log', // 每天生成按这个格式拼接到filename后边
      alwaysIncludePattern: true // 始终包含pattern
    },
    mainLog: {
      type: 'file',
      filename: path.join(LOG_PATH, 'main.log'),
      // pattern: '.yyyy-MM-dd.log', // 每天生成按这个格式拼接到filename后边
      alwaysIncludePattern: true // 始终包含pattern
    },
    errorLog: {
      type: 'file',
      filename: path.join(LOG_PATH, 'error.log'),
      // pattern: '.yyyy-MM-dd.log', // 每天生成按这个格式拼接到filename后边
      alwaysIncludePattern: true // 始终包含pattern
    },
    downloadLog: {
      type: 'file',
      filename: path.join(LOG_PATH, 'downloadLog.log'),
      // pattern: '.yyyy-MM-dd.log', // 每天生成按这个格式拼接到filename后边
      alwaysIncludePattern: true // 始终包含pattern
    },
    error: {
      type: "logLevelFilter",
      level: "error",
      appender: 'errorLog'
    }
  },
  // 不同等级的日志追加到不同的输出位置：appenders: ['out', 'allLog']  categories 作为getLogger方法的键名对应
  categories: {
    default: {
      appenders: ['out', 'fileLog'],
      level: 'debug'   // 定义默认类别
    },
    main: {
      appenders: ['out', 'mainLog'],
      level: "debug"
    },
    error: {
      appenders: ['out', 'errorLog'],
      level: "debug"
    },
    download: {
      appenders: ['out', 'downloadLog'],
      level: "debug"
    }
  }
});

module.exports = {
  main: log4js.getLogger('main'),
  error: log4js.getLogger('error'),
  download: log4js.getLogger("download")
}
